Various applications often require the filtering of noise or other transient signals from a desired signal. For example, in a power supply monitoring application, it may be desirable to suppress very short (e.g., high frequency) transient signals to prevent a degradation or a malfunction from occurring for the power supply monitoring application. As a specific example, the power supply monitoring circuitry may falsely trigger a downstream controller circuit to take an incorrect action due to the presence of transient signals.
Various analog and digital approaches exist to address transient signals. For example, an analog approach may slow the signal propagation along the analog signal path to filter out high-frequency transients. However, this approach may be prone to metastability problems, because the analog signal sent to a downstream digital circuit (e.g., a controller or a state machine) is asynchronous. Furthermore, an analog filtering approach may offer limited flexibility, because it can not easily implement widely separated pole frequencies.
As another example, a digital approach may be based on a shift register design with subsequent decisions of a comparator being clocked into an n-bit long register. When all n bits have the same desired logic state (e.g., a logical high level (1)), the final decision is propagated downstream. This approach may address the metastability issues of the analog approach by processing the information in the digital domain. However, this approach may be viewed as a delay element with a delay present in one direction (e.g., having all n bits equal a one), but not in the other direction (e.g., one zero in the n-bit stream is sufficient to prevent a one (1) decision). Thus, the approach may be represented as a low pass filter in one direction and an all pass filter in the other direction and, therefore would not be considered a digital equivalent to an analog filter. Further, this approach may also not easily implement widely separated pole frequencies.
Another approach, as an example, may employ a ripple counter that counts up with incoming ones and gets reset with an incoming zero. This approach attempts to address the limited flexibility, but generally remains an asymmetrical implementation where, without extensive decoding, frequencies synchronous to the filter will be decoded as noise. As a result, there is a need for improved filtering techniques.